package com.erp.remote.goods;

import com.erp.entity.goods.GoodsCategory;
import com.erp.util.AjaxResult;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * 商品分类接口
 */
@RequestMapping("/goodsCategory")
public interface GoodsCategoryRemote {
    //支持搜索的分类树。
    @RequestMapping("/treeSearch")
    AjaxResult categoryTreeSearch(@RequestParam Map<String, Object> params ,@RequestParam("keyword") String keyword);
    //商品分类树结构（李银件需要） 返回结果为success和code为‘data’的树形商品类别信息（需要参数companyId必须和searchName）
    @RequestMapping("/treeLyj")
    AjaxResult categoryTreeLyj(@RequestParam Map<String, Object> params);

    //商品分类树形结构 返回结果为success和code为‘tree’的树形商品类别信息，参数有companyId必须、searchName、searchStatus
    @PostMapping("/tree")
    AjaxResult categoryTree(@RequestBody Map<String, Object> params);

    //商品分类列表结构 返回结果为success和code为‘list’的列表商品类别信息，参数有companyId必须、searchName、searchStatus
    @PostMapping("/list")
    AjaxResult categoryList(@RequestBody Map<String, Object> params);

    //添加商品分类 返回结果为正常的success和error以及code为500代表的“新增商品类别错误，当前类别下存在同名类别”
    @PostMapping("/add")
    AjaxResult categoryAdd(@RequestBody GoodsCategory goodsCategory);

    //编辑商品分类 返回结果为正常的success和error以及code为500代表的“编辑商品类别错误，当前类别下存在同名类别”
    @PostMapping("/edit")
    AjaxResult categoryEdit(@RequestBody GoodsCategory goodsCategory);

    //编辑商品分类回显信息 返回结果为success和code为‘category’的一个商品类别信息
    @GetMapping("/detail/{id}")
    AjaxResult categoryEdit(@PathVariable Integer id);

    //删除商品分类 返回结果为正常的success和error以及code为500代表的“删除商品类别错误！该分类存在子分类或被商品引用”
    @DeleteMapping("/delete/{id}")
    AjaxResult categoryDelete(@PathVariable Integer id);

    //改变商品状态（单个）返回结果为正常的success和error
    @GetMapping("/changeOne")
    AjaxResult changeOne(@RequestParam Integer id, @RequestParam Integer status);

    //改变商品状态（批量）返回结果为正常的success和error
    @PostMapping("/changeBatch")
    AjaxResult changeBatch(@RequestBody Integer[] ids, @RequestParam Integer status);

}
